﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Reporting.WebForms;
using SIBI.Helpers;
using SIBI.Reports;
using SIBI.Models;


namespace MvcReportViewer.Reports.DesincorporacionMensual
{
    public partial class Reporte : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack)
            {
                ddlMes.SelectedIndex = DateTime.Today.Month;
                txtAno.Text = DateTime.Today.Year.ToString();
                f_Reporte();
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            f_Reporte();


        }

        // definir Estructura para el Reporte.
        

        private void f_Reporte()
        {
            // Obtener Parametros

            string lsclase = txtClase.Text.TrimEnd();
            int lnmes = ddlMes.SelectedIndex;
            string lsano = txtAno.Text.TrimEnd();
            int lnano = 0;
            int.TryParse( lsano, out lnano);
            
            //Crear Datasets que usa el Reporte
            ReportHelper.RepDataSet<string> tblReporte = new ReportHelper.RepDataSet<string>("Reporte", "repNombre");
            tblReporte.Rows.Add(new object[] { "Reporte de Desincorporación Mensual" });
            // Llenar Datasets con Datos desde el Contexto o Contextos.


            using (SIBIContext db = new SIBIContext())
            {
                var bienes = db.BienInformaticoes;

                var buscar = (from tmovtos in db.Movimientoes
                              where (
                                (String.IsNullOrEmpty(lsclase) || tmovtos.nbin.nmym.ncob.cnom.Contains(lsclase)) &&
                                 tmovtos.dmov.Value.Year.Equals(lnano) &&
                                 (tmovtos.dmov.Value.Month.Equals(lnmes) || lnmes == 0)
                                )
                              select new
                              {
                                  BienInformaticoId = tmovtos.BienInformaticoId,
                                  cmod = tmovtos.nbin.nmym.cmod,
                                  Marca_cnom = tmovtos.nbin.nmym.nmar.cnom,
                                  ClaseObjeto_cnom = tmovtos.nbin.nmym.ncob.cnom,
                                  TipoBien_cnom = tmovtos.nbin.ntib.cnom,
                                  cobs = tmovtos.cobs,
                                  dmov = tmovtos.dmov
                              }
                            );
                ReportViewer1.Reset();
                // Cargar el Reporte en pantalla, con sus parametros.
                ReportHelper.SetReportData(ReportViewer1, "/REP/REP_DesinMensual.rdl", "Reporte,DesinMensual", new object[] { tblReporte, buscar.ToList() }
                    , "repNombre", "Reporte de Desincorporación Mensual");
            }

        }// f_Reporte()

        
    }
}
